//
//  IOosObjects.h
//  oos4ios
//
//  Created by Pablo Gonzalez on 3/2/11.
//

#import "OosObject.h"
#import "OosService.h"
#import "OosTag.h"
#import "OosList.h"
#import "OosService.h"

@class OosUser;
@class OosMultimedia;

@interface OosReview : OosTimedObject
{
    OosPrivacy *mPrivacy;
}

+ (OosReview *) reviewFromServiceSlug: (NSString *) serviceSlug 
						  andUserSlug: (NSString *) userSlug;

@property (nonatomic, retain) OosUser *author;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *content;
@property (nonatomic, retain) NSNumber *rating;
@property (nonatomic, retain) OosService *service;
/**
 Returns an array with the tags used by users in the service (not all are returned)
 If the service is a saved service. These tags are the provided by the user.
 Maps to <atom:category schema="http://api.11870.com/api/v2/tag">
 */
@property (nonatomic, retain) NSSet /* OosTag */ *tags;
@property (nonatomic, readonly) NSMutableSet /* OosTag */ *mutableTags;
- (void) addTagsObject: (OosTag *) tag;
- (void) removeTagsObject: (OosTag *) tag;
/**
 User lists (groups) assigned to a service. 
 Maps to <atom:category schema="http://api.11870.com/api/v2/list">
 */
@property (nonatomic, retain) NSSet /* OosList */ *lists;
@property (nonatomic, readonly) NSMutableSet /* OosList */ *mutableLists;
- (void) addListsObject: (OosList *) list;
- (void) removeListsObject: (OosList *) list;

@property (nonatomic, retain) NSSet /* OosMultimedia */ *multimedias;
@property (nonatomic, readonly) NSMutableSet /* OosMultimedia */ *mutableMultimedias;
- (void) addMultimediasObject: (OosMultimedia *) multimedia;
- (void) removeMultimediasObject: (OosMultimedia *) multimedia;

@property (nonatomic, retain) OosPrivacy *privacy;
@property (nonatomic, retain) NSString *privacyString;

@property (nonatomic, retain) NSString *userSlug;
@property (nonatomic, retain) NSString *serviceSlug;

@property (nonatomic, retain) NSString *tagsString;
@property (nonatomic, retain) NSString *listsString;

@end
